#!/usr/local/bin/lua

print("Hello World!!!")
--[[
（0）交互控制台
lua -i

（1）控制台调用 
[root@mini lua]# lua hello.lua
Hello World!!!

（2）给于脚本权限
chmod 755 hello.lua

（3）字符串拼接
> "HELLO ".."WORLD" -->HELLO WORLD
长度
> #"HELLO" -->5

（4）变量默认认全局，局部local，print(type(nil)) --> 类型
nil(空，无效值)
boolean(布尔，true/false)
number(数值)
string(字符串)
function(函数)
table（表）
thread(线程)
userdata（用户数据）

（5）长字符串
html = \[\[
<html>
<head>
<title>Lua-string</title>
</head>
<body>
<a href="http://www.lua.org">Lua</a>
</body>
</html>
\]\]

(6) table：数组、集合、记录和其他很多数据结构

a = {}  ，索引
arr = {"TOM","JERRY","ROSE"}
数组的下标默认是从1开始
print(arr[0]) nil

>arr = {}  ，字符串当键
>arr["X"] = 10
>arr["Y"] = 20
>arr["Z"] = 30

方式一
>print(arr["X"])
方式二
>print(arr.X)

其它写法
arr = {"TOM",X=10,"JERRY",Y=20,"ROSE",Z=30}
TOM : arr[1]
10 : arr["X"] | arr.X
JERRY: arr[2]
20 : arr["Y"] | arr.Y
ROESE?

声明函数
function functionName(a,b)
    print(a,b)
end
调用
functionName(1,3);
结果
[root@mini lua]# ./hello.lua
Hello World!!!
1       3

可变参数
function add(...)
    a,b,c=...
    print(a)
    print(b)
    print(c)
end
add(1,2,3);

多返回值
function f(a,b)
    return a,b
end
x,y=f(11,22) --> x=11,y=22

thread
thread翻译过来是线程的意思，在Lua中，thread用来表示执行的独立
线路，用来执行协同程序。
userdata
userdata是一种用户自定义数据，用于表示一种由应用程序或C/C++语
言库所创建的类型。


function testif(a)
    if a>0 then
        print("a是正数")
    end
end

function testif(a)
    if a>0 then
        print("a是正数")
    else
        print("a是负数")
    end
end

function testWhile()
    local i = 1
    while i<=10 do
        print(i)
        i=i+1
    end
end

function testRepeat()
    local i = 10
    repeat
        print(i)
        i=i-1
    until i < 1
end

初始值，总值，步长
for i = 1,100,10 do
    print(i)
end

i是数组索引值，v是对应索引的数组元素值，ipairs是Lua提供的一个迭
代器函数，用来迭代数组，x是要遍历的数组。
for i,v in ipairs(x) do
    循环体
end

arr = {"TOME","JERRY","ROWS","LUCY"}
for i,v in ipairs(arr) do
    print(i,v)
end

for i,v in pairs(arr) do
print(i,v)
end


arr = {"TOME","JERRY","ROWS","LUCY"}
arr = {"TOME","JERRY","ROWS", x="JACK","LUCY"};
for i,v in pairs(arr) do
    -- i 索引，或当 KEY
    print(i,v)
end
pairs(arr);
--]]







